using System;
using System.Collections.Generic;
using System.Text;
using ClickSocial.Framework;

namespace ClickSocial.Entities
{
    public class EstadoVenta
    {
        static public string Confirmada = "CONFIRM";
        static public string Cancelada = "CANCEL";
        static public string Pendiente = "PEND";
        static public string Pedido = "PED";
    }

    public class VentaInfo : IHydratable<long>, ICloneable
    {
        #region campos
        private long _VentaID;
        private string _Cliente;
        private double _Monto;
        private DateTime _Fecha;
        private string _Estado;
        private int _Cantidad;
        private DateTime _FechaMod;
        #endregion

        #region Propiedades
        public long VentaID
        {
            get { return _VentaID; }
            set { _VentaID = value; }
        }
        public string Cliente
        {
            get { return _Cliente; }
            set { _Cliente = value; }
        }
        public double Monto
        {
            get { return _Monto; }
            set { _Monto = value; }
        }
        public DateTime Fecha
        {
            get { return _Fecha; }
            set { _Fecha = value; }
        }
        public string Estado
        {
            get { return _Estado; }
            set { _Estado = value; }
        }
        public int Cantidad
        {
            get { return _Cantidad; }
            set { _Cantidad = value; }
        }
        public DateTime FechaMod
        {
            get { return _FechaMod; }
            set { _FechaMod = value; }
        }
        #endregion

        /*public VentaInfo() { }

        public VentaInfo(string cliente, double monto, DateTime fecha, string estado, int cantidad)
        {
            _Cliente = cliente;
            _Monto = monto;
            _Fecha = fecha;
            _Estado = estado;
            _Cantidad = cantidad;
        }*/

        #region IHydratable<long> Members

        public long KeyID
        {
            get
            {
                return _VentaID;
            }
            set
            {
                _VentaID = value;
            }
        }

        public void Fill(System.Data.IDataReader dr)
        {
            _VentaID = Convert.ToInt64(Null.GetNull(dr[dr.GetOrdinal("VentaID")], _VentaID));
            _Cliente = Convert.ToString(Null.GetNull(dr[dr.GetOrdinal("Cliente")], _Cliente));
            _Monto = Convert.ToDouble(Null.GetNull(dr[dr.GetOrdinal("Monto")], _Monto));
            _Fecha = Convert.ToDateTime(Null.GetNull(dr[dr.GetOrdinal("Fecha")], _Fecha));
            _Estado = Convert.ToString(Null.GetNull(dr[dr.GetOrdinal("Estado")], _Estado));
            _Cantidad = Convert.ToInt32(Null.GetNull(dr[dr.GetOrdinal("Cantidad")], _Cantidad));
            _FechaMod = Convert.ToDateTime(Null.GetNull(dr[dr.GetOrdinal("FechaMod")], _FechaMod));
        }

        #endregion

        #region ICloneable Members

        public object Clone()
        {
            return (VentaInfo)this.MemberwiseClone();
        }

        #endregion
    }
}
